package com.su.kddq.service.user;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.su.kddq.entity.user.Order;
import com.su.kddq.entity.user.PayOrder;
import com.su.kddq.entity.user.vo.HistoryOrder;
import com.su.kddq.entity.user.vo.OrderDetail;
import com.su.kddq.entity.user.vo.PendingOrderVo;
import com.su.kddq.entity.user.vo.SendOrder;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;


/**
 * @author sx
 */
public interface OrderService extends IService<Order> {

    /**
     * 订单列表
     * @param pageNum
     * @param PageSize
     * @param orderState
     * @return
     */
    IPage<Order> getOrderListPage(Integer pageNum, Integer PageSize,Integer orderState);

    /**
     * 抢单大厅列表
     * @return
     */
    Map getOrderListNoPage(Map map);

    /**
     * 抢单
     * @param id
     * @return
     */
    boolean orderGrabbing(String id);


    /**
     * 获取待送单
     * @param pageNum
     * @param pageSize
     * @return
     */
    Map getPendingOrder(Integer pageNum, Integer pageSize);

    /**
     * 更新订单状态
     * @param id
     */
    void updateOrderStatus(String id);

    /**
     * 创建订单
     * @param order
     * @return
     */
    Map creatOrder(Order order);

    /**
     * 获取订单详细信息ById
     * @param id
     * @return
     */
    OrderDetail getOrderDetailByid(String id);

    /**
     * 支付异步回调
     * @param request
     * @return
     */
    String payNotify(HttpServletRequest request);

    /**
     * 支付订单
     * @param order
     * @return
     */
    boolean payOrder(Order order);

    /**
     * 取消订单
     * @param map
     * @return
     */
    boolean cancelOrder(Map map);

    /**
     * 历史订单收益
     * @return
     */
    Map getMoneybyMonthList(Integer pageNum,Integer pageSize);

    /**
     * 充值成功反馈
     * @param payOrderId
     * @return
     */
    PayOrder payResult(String payOrderId);

}
